1. Field of the Invention
The present invention relates generally to data storage devices. More specifically, the present invention relates to running a computer from a secure portable device.
2. Related Art
Modern computers provide for the ability to boot from a Universal Serial Bus (USB) flash drive. There are several advantages to running an operating system (OS) on a USB flash drive. First, USB flash drives typically utilize substantially less energy than hard drives. Hard drives have large platters that spin constantly, using up power. Second, USB flash drives are silent. Hard drives, especially older ones, can be noisy. Third, USB flash drives can be read from in a random fashion. Your system might actually run faster on a flash drive if it spends most of its time getting small bits of data from different parts of the drive. Fourth, USB flash drives provide for portability. A user can transport a USB flash drive to a different computer, reboot, and resume where the user left off.
Virtual Machines (VMs) allow the sharing of underlying physical machine resources between different VMs, each running its own operating system (OS). Multiple OS environments can co-exist on the same computer, in strong isolation from each other. The VM can provide an instruction set architecture (ISA) that is somewhat different from that of the real machine.
The desire to run multiple OSes was the original motivation for VMs, as it allowed time-sharing of a single computer between several single-tasking OSes. This technique requires a process to share the CPU resources between guest operating systems and memory virtualization to share the memory on the host.
All of the guest OSes do not have to be the same, making it possible to run different OSes on the same computer (e.g., Microsoft Windows and Linux, or older versions of an OS in order to support software that has not yet been ported to the latest version). The use of VMs to support different guest OSes is becoming popular in embedded systems; a typical use is to support a real-time OS at the same time as a high-level OS such as Linux or Windows, for example.
One use of VMs is emulation of the underlying raw hardware (native execution). Each VM can run any operating system supported by the underlying hardware. Users can thus run two or more different “guest” OSes simultaneously, in separate “private” virtual computers.
Another use of VMs is emulation of a non-native system. VMs can perform the role of an emulator, allowing software applications and OSes written for another computer processor architecture to be run.
Presently, various kinds of data can be stored on a peripheral device, such as a USB flash drive, for example. These devices are very lightweight and portable. However, one drawback is that the devices are typically not secure. If lost or stolen, confidential data can be compromised. Consequently, there is a need in the art for an improved system and method for booting a guest or secondary operating system from a peripheral device on a host computer.